package study.sort;

import java.util.Arrays;

public class RadixSort {
    public static void main(String[] args) {
        int[] arr = {53, 3, 542, 748, 14, 214};

        System.out.println("排序前：" + Arrays.toString(arr));
        radixSort(arr);
        System.out.println("排序后：" + Arrays.toString(arr));

    }

    /**
     * 推导过程
     * @param arr
     */
    public static void radixSort(int[] arr){

        //定义一个二维数组，表示10个桶，数组第一维表示一个桶
        int[][] bucket = new int[10][arr.length];

        //定义一个一维数组，用来记录每个桶存储的元素的数量
        int[] bucketElementPosition = new int[10];

        //{53, 3, 542, 748, 14, 214}
        //第1轮
        for (int j = 0; j < arr.length; j++) {
            //取每个元素的个位
            int digitOfElement = arr[j] % 10;
            //将元素放入个位对应的桶中
            //bucket[桶号][元素在桶中的位置]
            bucket[digitOfElement][0] = arr[j];

        }

    }
}
